package eu.catengine.scene;

import eu.catengine.primitive.Point;

/**
 * Klasa odpowiadająca za przechowywanie informacji o punktach dotknięcia ekranu. <br>
 * 
 * @author mbienkowski
 */
public class TouchPointer
{
    private int mPointerId;
    private Point mRawTouchPoint;
    private Point mFixedTouchPoint;
    private Point mSceneTouchPoint;

    /**
     * Tworzy punkt dotknięcia.
     */
    public TouchPointer()
    {
	mSceneTouchPoint = new Point();
    }

    /**
     * Tworzy punkt dotknięcia.
     * @param pid <code>int</code> ID wskaźnika, który dotyka ekranu.
     * @param rawTouchPoint <code>Point</code> Punkt przechwycony bezpośrednio z funkcji systemu Android.
     * @param fixedTouchPoint <code>Point</code> Punkt dostosowany do elementów, które nie zmieniają pozycji na ekranie.
     * @param sceneTouchPoint <code>Point</code> Punkt dostosowany do elementów sceny.
     */
    public TouchPointer(int pid, Point rawTouchPoint, Point fixedTouchPoint, Point sceneTouchPoint)
    {
	this.mPointerId = pid;
	this.mRawTouchPoint = rawTouchPoint;
	this.mFixedTouchPoint = fixedTouchPoint;
	this.mSceneTouchPoint = sceneTouchPoint;
    }

    /**
     * Zwraca ID wskaźnika.
     * @return <code>int</code> ID.
     */
    public int getPointerId()
    {
	return mPointerId;
    }

    /**
     * Zwraca punkt przechwycony bezpośrednio z funkcji systemu Android.
     */
    public Point getRawTouchPoint()
    {
	return mRawTouchPoint;
    }
    
    /**
     * Zwraca punkt dostosowany do elementów, które nie zmieniają pozycji na ekranie.
     */
    public Point getFixedTouchPoint()
    {
	return mFixedTouchPoint;
    }

    /**
     * Zwraca punkt dostosowany do elementów sceny.
     */
    public Point getSceneTouchPoint()
    {
	return mSceneTouchPoint;
    }

    /**
     * Zwraca obiekt w formie tekstu stworzonego na podstawie przechowywanych danych.
     */
    @Override
    public String toString()
    {
	return "PointerId(" + mPointerId + ")=" + mSceneTouchPoint.toString();
    }

}
